#!/bin/bash
# DMG兼容性测试脚本

echo "=== LimeReader DMG 兼容性测试 ==="

APP_PATH="/Users/ethan/Codes/longimagereader/deploy/dist/LimeReader.app"

echo "1. 检查.app包结构..."
if [ -d "$APP_PATH" ]; then
    echo "✅ .app包存在"
else
    echo "❌ .app包不存在"
    exit 1
fi

echo "2. 检查Qt框架是否打包..."
QT_FRAMEWORKS_COUNT=$(ls -1 "$APP_PATH/Contents/Frameworks/" | grep -E "Qt.*\.framework" | wc -l)
if [ $QT_FRAMEWORKS_COUNT -gt 0 ]; then
    echo "✅ 找到 $QT_FRAMEWORKS_COUNT 个Qt框架"
else
    echo "❌ 未找到Qt框架"
fi

echo "3. 检查Qt插件..."
QT_PLUGINS_COUNT=$(find "$APP_PATH/Contents/PlugIns" -name "*.dylib" | wc -l)
if [ $QT_PLUGINS_COUNT -gt 0 ]; then
    echo "✅ 找到 $QT_PLUGINS_COUNT 个Qt插件"
else
    echo "❌ 未找到Qt插件"
fi

echo "4. 检查动态库依赖..."
EXTERNAL_DEPS=$(otool -L "$APP_PATH/Contents/MacOS/LimeReader" | grep -v "@executable_path" | grep -v "/System/Library" | grep -v "/usr/lib" | wc -l)
if [ $EXTERNAL_DEPS -eq 1 ]; then  # 只包含第一行的可执行文件路径
    echo "✅ 所有依赖都已打包或为系统库"
else
    echo "⚠️  发现外部依赖："
    otool -L "$APP_PATH/Contents/MacOS/LimeReader" | grep -v "@executable_path" | grep -v "/System/Library" | grep -v "/usr/lib"
fi

echo "5. 检查代码签名..."
codesign -dv --verbose=4 "$APP_PATH" 2>/dev/null && echo "✅ 应用已签名" || echo "⚠️  应用未签名（测试环境可接受）"

echo "6. 模拟无Qt环境测试..."
# 临时重命名Homebrew Qt目录来模拟无Qt环境
if [ -d "/opt/homebrew/opt/qt" ]; then
    echo "模拟无Qt环境，测试应用启动..."
    # 这里应该在真实的无Qt环境中测试
    echo "⚠️  建议在没有安装Qt的macOS设备上测试"
fi

echo "7. 生成兼容性报告..."
REPORT_FILE="dmg_compatibility_report_$(date +%Y%m%d_%H%M%S).txt"
cat > "$REPORT_FILE" << EOF
LimeReader DMG 兼容性测试报告
生成时间: $(date)

应用信息:
- 应用路径: $APP_PATH
- 应用大小: $(du -sh "$APP_PATH" | cut -f1)

Qt框架打包:
- Qt框架数量: $QT_FRAMEWORKS_COUNT
- Qt插件数量: $QT_PLUGINS_COUNT

依赖库分析:
$(otool -L "$APP_PATH/Contents/MacOS/LimeReader")

系统要求:
- 最低系统版本: macOS 10.15+
- 处理器架构: $(file "$APP_PATH/Contents/MacOS/LimeReader" | cut -d: -f2-)

测试建议:
1. 在干净的macOS虚拟机中测试
2. 在没有开发环境的用户机器上测试
3. 测试不同macOS版本(10.15, 11.x, 12.x, 13.x, 14.x)
4. 测试Intel和Apple Silicon机器

EOF

echo "✅ 兼容性报告已生成: $REPORT_FILE"
echo ""
echo "=== 测试完成 ==="
echo "建议下一步操作:"
echo "1. 将DMG复制到其他macOS设备测试"
echo "2. 在虚拟机环境中测试"
echo "3. 请朋友或同事在不同设备上测试"
